package br.com.gerenteweb.daos;

import java.io.Serializable;
import java.util.List;

import javax.persistence.Lob;

import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.Transaction;

import br.com.gerenteweb.users.Usuario;
import br.com.hibernate.util.HibernateUtil;

/**
 * Classe Dao de Usuario
 * 
 * @author Felipe-
 *
 */
public class UsuarioDao implements Serializable {
	private Session sessao;
	private Transaction trans;
	private List<Usuario> listaDeUsuarios;

	public void addUsuario(Usuario usuario) {
		try {
			sessao = HibernateUtil.getSessionFactory().openSession();
			trans = sessao.beginTransaction();
			Usuario user = new Usuario();
			user.setNome(usuario.getNome());
			user.setSenha(usuario.getSenha());

			sessao.save(user);
			trans.commit();

		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			sessao.close();
		}

	}
	
	public void removeUsuario(Usuario usuario) {
		try {
			sessao = HibernateUtil.getSessionFactory().openSession();
			trans = sessao.beginTransaction();
			

			sessao.delete(usuario);
			trans.commit();

		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			sessao.close();
		}

	}
	
	public List<Usuario> getLojas() {
		sessao = HibernateUtil.getSessionFactory().openSession();
		trans = sessao.beginTransaction();

		Criteria cri = sessao.createCriteria(Lob.class);
		this.listaDeUsuarios = cri.list();
		return listaDeUsuarios;
	}

	public Session getSessao() {
		return sessao;
	}

	public void setSessao(Session sessao) {
		this.sessao = sessao;
	}

	public Transaction getTrans() {
		return trans;
	}

	public void setTrans(Transaction trans) {
		this.trans = trans;
	}

	public List<Usuario> getListaDeUsuarios() {
		return listaDeUsuarios;
	}

	public void setListaDeUsuarios(List<Usuario> listaDeUsuarios) {
		this.listaDeUsuarios = listaDeUsuarios;
	}


}
